import axios from 'axios';
import { useAppStore } from '@/stores/modules/app'
import { ElMessage, ElMessageBox } from 'element-plus'

const http = axios.create({
  baseURL: import.meta.env.VITE_APP_URL, // 基础URL
  timeout: 10000, // 请求超时时间
  // 其他配置...
});

// 请求拦截器
http.interceptors.request.use(
  (config: any) => {
    // 可以在这里添加例如token等请求头
    config.headers['token'] = useAppStore().getToken || sessionStorage.getItem('token') || ''
    return config;
  },
  (error) => {
    // 请求错误处理
    ElMessage.error(error.data.msg)
    return Promise.reject(error)
  }
);

// 响应拦截器
http.interceptors.response.use(
  (response: any) => {
    // 接口响应码
    if (response.data.code != 200) {
      ElMessage.error(response.data.msg)
      // return Promise.reject(response.data)
    }
    // 对响应数据做处理，例如只返回data部分
    return response.data
  },
  (error) => {
    // 响应错误处理
    ElMessage.error(error.message)
    return Promise.reject(error)
  }
);

export default http;